﻿using BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PresentationLayer
{
    public partial class CapNhatPhatForm : Form
    {
        public delegate void LoadDS(Phat phat);
        private LoadDS load;
        public CapNhatPhatForm()
        {
            InitializeComponent();
        }
        public CapNhatPhatForm(LoadDS loadDS)
        {
            load = loadDS;
            InitializeComponent();
        }

        private void CapNhatPhatForm_Load(object sender, EventArgs e)
        {
            // Load datasource for 2 comboboxes
            var listDG = new DocGiaManager().LayDGTheoTrangThai("Hoạt động");
            if (listDG.Success)
            {
                foreach (var item in listDG.ObjectList)
                    cbbMaDG.Items.Add(item.MaDocGia);
            }
            else MessageBox.Show(listDG.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            var listSach = new SachManager().LaySachTheoTrangThai("Sẵn sàng");
            if (listSach.Success)
            {
                foreach (var item in listSach.ObjectList)
                    cbbMaSach.Items.Add(item.MaSach);
            }
            else MessageBox.Show(listDG.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            cbbLoaiPhat.SelectedIndex = 0;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (!cbbMaDG.Items.Contains(cbbMaDG.Text))
                cbbMaDG.SelectedIndex = 0;
            if (!cbbMaSach.Items.Contains(cbbMaSach.Text))
                cbbMaSach.SelectedIndex = 0;
            DialogResult dlg = MessageBox.Show("Bạn có muốn thêm phạt với mã độc giả: " + cbbMaDG.Text + " và mã sách: " + cbbMaSach.Text + " hay không?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dlg == DialogResult.Yes)
            {
                Phat phat = new Phat();
                phat.MaDG = cbbMaDG.Text;
                phat.MaSach = cbbMaSach.Text;
                phat.LoaiPhat = cbbLoaiPhat.Text;
                if (cbbLoaiPhat.Text == "Mất sách")
                {
                    var vr = new SachManager().TimKiemSachTheoMa(cbbMaSach.Text);
                    if (vr.Success)
                    {
                        int gia = vr.ObjectList[0].Gia;
                        phat.HinhPhat = "Đền tiền " + gia * 2 + " VNĐ và cấm mượn sách 1 tháng";
                    }
                    else MessageBox.Show(vr.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else phat.HinhPhat = "Cấm 1 tháng mượn sách";
                phat.NgayPhat = DateTime.Now;
                phat.HanPhat = phat.NgayPhat.AddMonths(1);
                var re = new PhatManager().Them(phat);
                if (re.Success)
                {
                    MessageBox.Show("Bạn đã thêm phạt thành công với mã phạt là: " + phat.MaPhat, "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                    load(phat);
                    // Delete MaSach in combobox when LoaiPhat == "Mất sách"
                    if (phat.LoaiPhat == "Mất sách")
                    {
                        cbbMaSach.Items.RemoveAt(cbbMaSach.SelectedIndex);
                        cbbMaSach.Refresh();
                    }
                }
                else MessageBox.Show(re.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
